1. Field of the Invention
The present invention is generally directed to neural networks. More particularly, the present invention is directed to computations performed by neural networks.
2. Background Art
Neural networks attempt to achieve autonomous behavior—i.e., learn—based on a network of simulated neurons that are connected in a manner suggestive of connections between real neurons in humans. In humans, a first neuron may fire in response to an external stimulus. In response to the firing of the first neuron, other neurons connected to the first neuron may also fire.
Similarly, a first simulated neuron in an input layer of a neural network can become active (e.g., fire) in response to stimulus to the neural network. One or more simulated neurons connected to the first simulated neuron may become active (e.g., fire) in response to the activity (e.g., firing) of the first neuron. Whether the activity of the first simulated neuron causes other simulated neurons to become active is dependent on at least two factors: (i) a weight associated with a connection between the first simulated neuron and each other simulated neuron to which the first simulated neuron is connected; and (ii) the threshold activity level required to cause each other simulated neuron to become active.
Rather than using neural networks, a conventional method for learning from input data is to cluster the input data. For example, input speech data may be clustered according to the people who uttered the speech—such that the speech of a first person is organized into a first cluster, the speech of a second person is organized into a second cluster, and so on. Conventional clustering methods are typically configured as software algorithms that runs on a general-purpose computer. Unfortunately, a problem with conventional clustering algorithms is that the output (or result) of these clustering algorithms is dependent on both the initial configuration of the conventional clustering algorithms and the order in which data is presented to the conventional clustering algorithms.
What is desired, therefore, is a neural network that can cluster a sequence of input data.